import qs from 'qs'
import api from '~/api/api'
export default ({$axios, redirect })=>{
    //请求拦截器
  $axios.interceptors.request.use((config) => { 
    //如果是浏览器环境头部添加用户信息
    if (typeof window !== 'undefined') {
      let token = localStorage.getItem('token') || 'null'
      config.headers.token = token;
    }
    if(config.url === 'ksMerchantItemAdd'){
      config.headers['Content-Type'] = 'application/json'
    }
    if(config.url === 'addSupplyGoods'){
      config.headers['Content-Type'] = 'application/json'
    }
    if(config.url === 'mutateShopList'){
      config.headersc= 'application/json'
    }
    //改数据格式
    if (
       config.method === 'post' 
       && config.url != 'ksMerchantItemAdd' 
       && config.url != 'ksMerchantItemUpdate' 
       && config.url != 'mutateShopList'  
       && config.url != 'addSupplyGoods'
      ) {
      config.data = qs.stringify(config.data)
      // if(config.data)
      // config.data = (config.data instanceof FormData) ? config.data : qs.stringify(config.data)
    }
    //更改请求路径q
    // console.log(qs.stringify(config.data))
    config.url = process.env.APIHOST + api[config.url].url; //拼接地址

    // console.log('config.url==='+ config.url)
    // console.log(' process.env.APIHOST==='+process.env.APIHOST)
    // console.log(' api==='+api)
    //config.url 就是类似于这样的 url: "/getImg"
    return config //可以显示对应拦截
  })
  // // 响应拦截器
  $axios.interceptors.response.use((response) => { 
    if(response.data.status == 401){
        // bus.$emit('logout')
      localStorage.removeItem('token');
      localStorage.removeItem('name');
      localStorage.removeItem('userid');
      localStorage.removeItem('auth');
      localStorage.removeItem('list');
      localStorage.removeItem('ksAccount');
      redirect('/login') //重定向到登录
    }
    return response
  },(error)=>{
      return Promise.reject(error)
  })
  // $axios.onRequest(config => {

  // })
  $axios.onError(error => {
    console.log(error)
    const code = parseInt(error.response && error.response.status)
    // if (code === 400) {
    //   redirect('/400')
    // }
  })
}